The present invention relates to data collection in a computing system, and more specifically, to dynamically choosing what data to collect about applications programs running on the computing system to monitor system health or performance.
Software monitors may track system health and/or system performance. One well known problem with software monitors is that collecting the data required to diagnose or predict a problem can be costly in both the time required to collect the data as well as the amount of storage needed to store the collected data. For example, collecting too much data may lead to system performance and storage issues at both data collection and problem determination times. Similarly, collecting too little data may lead to inaccurate analysis and diagnostic misses. In addition, collecting the right amount of data, but not the right data needed to correctly diagnose a given problem may lead to inaccurate analysis and possibly allow problems to go unidentified. Users often do not know what to monitor, which then causes the collection of too much or too little data. In addition, when the user changes the collection policy, these changes must be manually propagated to the system monitors.